/*!
    \copyright  Copyright (c) 2023-2025 Qualcomm Technologies International, Ltd.
                All Rights Reserved.
                Qualcomm Technologies International, Ltd. Confidential and Proprietary.
    \file
    \addtogroup le_bap
    \brief      Audio locations handling for PACS profile
    @{
*/

#ifndef PACS_AUDIO_LOCATIONS_H_
#define PACS_AUDIO_LOCATIONS_H_

/*! \brief Initialises the audio source/sink location characteristics in the PACS profile.

 */
void PacsAudioLocations_Initialise(void);

/*! \brief Triggers an update of the Sink Audio Locations in PACS

    \param sink_locations sink_locations to update PACS with
 */
void PacsAudioLocations_UpdateSinkLocations(uint32 sink_locations);

/*! \brief Triggers an update of the Source Audio Locations in PACS

    \param source_locations source_locations to update PACS with
 */
void PacsAudioLocations_UpdateSourceLocations(uint32 source_locations);

/*! \brief Gets the Sink audio locations to render locally on this device

    \return PACS audio locations to render for Sink.
 */
uint32 PacsAudioLocations_GetSinkAudioLocationToRender(void);

/*! \brief Sets the Sink audio locations to render locally on this device

    \param audio_location audio location to render locally
 */
void PacsAudioLocations_SetSinkAudioLocationToRender(uint32 audio_location);

/*! \brief Gets the Source/Sink audio locations currently set in PACS

    \param for_sink_direction Set as TRUE for getting Sink audio location, FALSE for Source audio location.

    \return PACS audio locations set for Source/Sink.
 */
uint32 PacsAudioLocations_GetPacAudioLocation(bool for_sink_direction);

/*! \brief Checks the audio location entered by user is valid or not.

    \return Returns TRUE if user entered valid location else returns FALSE.
 */
bool PacsAudioLocations_IsAudioLocationValid(uint32 audio_location);

#endif
